#!/bin/bash
###############################################################################
# @用例ID: 20230527-105345-854289001
# @用例名称: test_rsync
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件: 查看rsync是否安装
    rsync > /dev/null 2>&1
    assert_true [ $? -ne 0 ]
    mkdir src_dir || return 1
    mkdir dest_dir || return 1
    cp Makefile ./src_dir || return 1
    return 0
}

do_test() {
    msg "this is do_test"

    # @测试步骤:1: 使用rsync将源目录同步到目标目录
    src_dir="src_dir"
    dest_dir="dest_dir"
    rsync_cmd="rsync -avz --delete $src_dir/ $dest_dir/"
    
    # @测试步骤:2: 检查同步后的文件是否完全一致
    # @预期结果:2: 一致
    diff_output=$(diff -r $src_dir $dest_dir)
    assert_true [ "$diff_output" == "" ]

    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv src_dir || return 1
    rm -rfv dest_dir || return 1
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
